package com.weijian.demo1.service;

import org.springframework.stereotype.Service;
import java.util.concurrent.ConcurrentHashMap;
import java.util.Map;

@Service
public class DocumentMemoryService {
    // 内存中的文档缓存：key=documentId, value=当前内容
    private final Map<Long, String> documentCache = new ConcurrentHashMap<>();
    
    // 最后更新时间戳：用于冲突检测
    private final Map<Long, Long> lastUpdateTime = new ConcurrentHashMap<>();
    
    /**
     * 更新内存中的文档内容（不保存到数据库）
     */
    public void updateInMemory(Long documentId, String content) {
        documentCache.put(documentId, content);
        lastUpdateTime.put(documentId, System.currentTimeMillis());
    }
    
    /**
     * 获取内存中的文档内容
     */
    public String getFromMemory(Long documentId) {
        return documentCache.get(documentId);
    }
    
    /**
     * 获取最后更新时间
     */
    public Long getLastUpdateTime(Long documentId) {
        return lastUpdateTime.getOrDefault(documentId, 0L);
    }
    
    /**
     * 清除内存缓存（当文档关闭时）
     */
    public void clearFromMemory(Long documentId) {
        documentCache.remove(documentId);
        lastUpdateTime.remove(documentId);
    }
}